Function at 0x4972d0
Capabilities:
Check http status code

Disassembly:
push 0x3bc
mov eax, 0x536c35
call fcn.004e4a40
mov eax, ecx
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x378], ecx
mov ecx, eax
mov dword [ebp - 0x364], edi
mov dword [ebp - 0x380], edi
mov dword [ebp - 0x3c4], ebx
call fcn.00496687
test al, al
jne 0x4973ad
push str.NewExpiringPurchase
lea ecx, [ebp - 0x74]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], ebx
call fcn.004147d9
push str.user_has_insufficient_tokens
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 1
call fcn.004147d9
push 0x3e7
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xa4]
xor esi, esi
push eax
lea eax, [ebp - 0x5c]
inc esi
push eax
push esi
lea ecx, [ebp - 0x374]
call fcn.00488424
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.00492546
lea ecx, [ebp - 0x370]
call fcn.0041fcfc
push ebx
push esi
lea ecx, [ebp - 0x5c]
call fcn.00416ab1
push ebx
push esi
lea ecx, [ebp - 0xa4]
call fcn.00416ab1
push ebx
push esi
lea ecx, [ebp - 0x74]
call fcn.00416ab1
mov eax, edi
jmp 0x497f23
mov byte [ebp - 0x8c], bl
lea edi, [ebp - 0x84]
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x53d14c
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 4
call fcn.004147d9
push esi
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 5
call fcn.0041482e
push str.distinguisher
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 6
call fcn.004147d9
push dword [ebp - 0x378]
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 7
call fcn.0041482e
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
neg ecx
mov byte [ebp - 4], 8
adc eax, ebx
neg eax
push eax
push ecx
lea eax, [ebp - 0x194]
push eax
call fcn.0049fefe
add esp, 0xc
mov esi, eax
push str.expectedAmount
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 9
call fcn.004147d9
push esi
lea ecx, [ebp - 0xbc]
call fcn.004147b6
push ebx
push 1
lea ecx, [ebp - 0x194]
call fcn.00416ab1
mov byte [ebp - 0x378], bl
lea eax, [ebp - 0xa4]
push dword [ebp - 0x378]
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x134]
mov dword [ebp - 0x370], ebx
push eax
mov dword [ebp - 0x36c], ebx
mov dword [ebp - 0x368], ebx
call fcn.0048cf49
push str._transaction
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xb
call fcn.004147d9
push 0x53ce0c
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0xc
call fcn.004147d9
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x370]
mov ecx, dword [ebp - 0x48]
xor esi, esi
push eax
inc esi
lea eax, [ebp - 0xa4]
push esi
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x3c0]
push eax
call fcn.00496b30
push ebx
push esi
lea ecx, [ebp - 0x74]
call fcn.00416ab1
push ebx
push esi
lea ecx, [ebp - 0xa4]
call fcn.00416ab1
lea ecx, [ebp - 0x370]
call fcn.0049b312
push fcn.0043ad16
push 3
push 0x30
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0x12
push eax
call fcn.004e42b8
cmp byte [ebp - 0x8c], 0
mov byte [ebp - 4], 0x13
je 0x497544
push ebx
lea ecx, [ebp - 0x84]
call fcn.004314a9
cmp byte [ebp - 0x384], 0
jne 0x4975f5
push str.NewExpiringPurchase
lea ecx, [ebp - 0x2c]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x14
call fcn.004147d9
push str.MakeHTTPRequestWithRetry_failed
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x15
call fcn.004147d9
push 0x3f6
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x16
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x3c0]
call fcn.004885a2
mov edi, dword [ebp - 0x364]
mov ecx, edi
push eax
call fcn.00492546
push ebx
push esi
lea ecx, [ebp - 0x5c]
call fcn.00416ab1
push ebx
push esi
lea ecx, [ebp - 0x44]
call fcn.00416ab1
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00416ab1
cmp byte [ebp - 0x384], 0
je 0x4975e5
lea ecx, [ebp - 0x3c0]
call fcn.0043bbcd
jmp 0x4973a6
lea ecx, [ebp - 0x3bc]
call fcn.0041fcfc
jmp 0x4973a6
push 0xc8
lea eax, [ebp - 0x274]
mov byte [ebp - 0x27c], bl
push ebx
push eax
call fcn.004fd8b0
add esp, 0xc
mov edi, dword [ebp - 0x3c0]
mov byte [ebp - 4], 0x17
cmp edi, 0xc8
je 0x49763e
cmp edi, 0x1ad
je 0x49763e
cmp edi, 0x192
je 0x49763e
cmp edi, 0x199
jne 0x497b31
cmp dword [ebp - 0x3ac], 0
jne 0x497701
push str.NewExpiringPurchase
lea ecx, [ebp - 0x44]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x18
call fcn.004147d9
lea eax, [ebp - 0x3c0]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x194]
push str.result_has_no_body__code:
push eax
call fcn.004a9ca9
add esp, 0xc
push 0x402
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x1a
push ecx
lea ecx, [ebp - 0x2c]
push ecx
push eax
push esi
lea ecx, [ebp - 0x374]
call fcn.00488424
mov edi, dword [ebp - 0x364]
mov ecx, edi
push eax
mov byte [ebp - 4], 0x1b
call fcn.00492546
lea ecx, [ebp - 0x370]
call fcn.0041fcfc
push ebx
push esi
lea ecx, [ebp - 0x194]
call fcn.00416ab1
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00416ab1
push ebx
push esi
lea ecx, [ebp - 0x44]
call fcn.00416ab1
cmp byte [ebp - 0x27c], 0
je 0x4975cc
lea ecx, [ebp - 0x274]
call fcn.00425574
jmp 0x4975cc
push esi
sub esp, 0x28
mov byte [ebp - 4], 0x1c
mov eax, esp
mov dword [eax + 0x24], ebx
lea eax, [ebp - 0x3bc]
push eax
lea eax, [ebp - 0x374]
push eax
call fcn.00490019
add esp, 0x34
mov esi, dword [ebp - 0x48]
lea ecx, [ebp - 0x37c]
mov byte [ebp - 4], 0x1d
push dword [esi + 0x58]
call fcn.00492d38
mov edi, str.Balance
mov byte [ebp - 4], 0x1e
push edi
lea ecx, [ebp - 0x2c]
call fcn.004147d9
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x374]
call fcn.0049b541
mov al, byte [eax]
cmp al, 5
je 0x49776e
mov byte [ebp - 0x35d], bl
cmp al, 6
jne 0x497775
mov byte [ebp - 0x35d], 1
push ebx
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1e
call fcn.00416ab1
cmp byte [ebp - 0x35d], 0
je 0x4977e1
push edi
lea ecx, [ebp - 0x2c]
call fcn.004147d9
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x20
push eax
lea ecx, [ebp - 0x374]
call fcn.0049b541
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.0048ef23
pop ecx
pop ecx
push dword [ebp - 0x48]
mov ecx, dword [esi + 0x58]
lea eax, [ebp - 0x84]
push dword [ebp - 0x4c]
push eax
call fcn.004afa7f
lea ecx, [ebp - 0x80]
call fcn.0041fcfc
push ebx
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1e
call fcn.00416ab1
cmp dword [ebp - 0x3c0], 0xc8
jne 0x497a67
push str.expiring_purchase
lea ecx, [ebp - 0x2c]
call fcn.004147d9
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x21
push eax
lea eax, [ebp - 0x374]
mov ecx, esi
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.00498734
push ebx
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x23
call fcn.00416ab1
cmp byte [ebp - 0xac], 0
jne 0x497900
push str.NewExpiringPurchase
lea ecx, [ebp - 0xa4]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x24
call fcn.004147d9
push str.failed_to_parse_purchase_from_response_JSON
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x25
call fcn.004147d9
push 0x415
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x26
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x174]
call fcn.004885a2
mov edi, dword [ebp - 0x364]
mov ecx, edi
push eax
call fcn.00492546
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0x74]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0xa4]
call fcn.00416ab1
cmp byte [ebp - 0xac], 0
je 0x4978d4
lea ecx, [ebp - 0x174]
call fcn.00425574
jmp 0x4978df
lea ecx, [ebp - 0x170]
call fcn.0041fcfc
lea ecx, [ebp - 0x37c]
call fcn.00492f7a
push dword [ebp - 0x374]
lea ecx, [ebp - 0x36c]
call fcn.0042f572
jmp 0x4976e4
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0x27c]
call fcn.0048c3e0
cmp byte [ebp - 0x224], 0
jne 0x497991
push str.NewExpiringPurchase
lea ecx, [ebp - 0xa4]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x27
call fcn.004147d9
push str.response_did_not_provide_valid_expiry
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x28
call fcn.004147d9
push 0x41c
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x29
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x44]
push eax
push 1
lea ecx, [ebp - 0x84]
call fcn.00488424
mov edi, dword [ebp - 0x364]
mov ecx, edi
push eax
mov byte [ebp - 4], 0x2a
call fcn.00492546
lea ecx, [ebp - 0x80]
call fcn.0041fcfc
jmp 0x49789a
mov ecx, dword [esi + 0x58]
lea eax, [ebp - 0x274]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.004ae8f8
cmp byte [ebp - 0x54], 0
mov byte [ebp - 4], 0x2b
je 0x497a3a
push str.NewExpiringPurchase
lea ecx, [ebp - 0x74]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x2c
call fcn.004147d9
push str.AddPurchase_failed
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x2d
call fcn.004147d9
push 0x422
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 0x2e
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x54]
call fcn.004885a2
mov edi, dword [ebp - 0x364]
mov ecx, edi
push eax
call fcn.00492546
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0x74]
call fcn.00416ab1
lea ecx, [ebp - 0x50]
call fcn.0041fcfc
jmp 0x4978be
lea ecx, [ebp - 0x50]
call fcn.0041fcfc
cmp byte [ebp - 0xac], 0
mov byte [ebp - 4], 0x1e
je 0x497a5c
lea ecx, [ebp - 0x174]
call fcn.00425574
jmp 0x497a67
lea ecx, [ebp - 0x170]
call fcn.0041fcfc
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x37c]
call fcn.004956a7
cmp byte [ebp - 0x54], 0
mov byte [ebp - 4], 0x2f
je 0x497b07
push str.NewExpiringPurchase
lea ecx, [ebp - 0x74]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x30
call fcn.004147d9
push str.UserData_write_failed
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x31
call fcn.004147d9
push 0x428
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 0x32
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x54]
call fcn.004885a2
mov edi, dword [ebp - 0x364]
mov ecx, edi
push eax
call fcn.00492546
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0x74]
call fcn.00416ab1
lea ecx, [ebp - 0x50]
jmp 0x4978da
lea ecx, [ebp - 0x50]
call fcn.0041fcfc
lea ecx, [ebp - 0x37c]
call fcn.00492f7a
push dword [ebp - 0x374]
lea ecx, [ebp - 0x36c]
call fcn.0042f572
mov edi, dword [ebp - 0x3c0]
push 0xd8
lea eax, [ebp - 0x354]
mov dword [ebp - 4], 0x17
push ebx
push eax
mov byte [ebp - 0x35c], bl
call fcn.004fd8b0
add esp, 0xc
mov ecx, 0xc8
mov byte [ebp - 4], 0x38
cmp edi, ecx
jne 0x497b91
mov al, byte [ebp - 0x27c]
mov dword [ebp - 0x17c], ebx
mov byte [ebp - 0x174], al
test al, al
je 0x497b88
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x16c]
call fcn.0049b7da
mov byte [ebp - 4], 0x39
jmp 0x497cb5
cmp edi, 0x1ad
jne 0x497bc3
push ecx
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x17c], 1
push ebx
push eax
mov byte [ebp - 0x174], bl
call fcn.004fd8b0
add esp, 0xc
mov byte [ebp - 4], 0x3a
jmp 0x497cb5
cmp edi, 0x192
jne 0x497bf5
push ecx
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x17c], 2
push ebx
push eax
mov byte [ebp - 0x174], bl
call fcn.004fd8b0
add esp, 0xc
mov byte [ebp - 4], 0x3b
jmp 0x497cb5
cmp edi, 0x199
jne 0x497c27
push ecx
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x17c], 3
push ebx
push eax
mov byte [ebp - 0x174], bl
call fcn.004fd8b0
add esp, 0xc
mov byte [ebp - 4], 0x3c
jmp 0x497cb5
cmp edi, 0x194
jne 0x497c56
push ecx
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x17c], 4
push ebx
push eax
mov byte [ebp - 0x174], bl
call fcn.004fd8b0
add esp, 0xc
mov byte [ebp - 4], 0x3d
jmp 0x497cb5
cmp edi, 0x191
jne 0x497c85
push ecx
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x17c], 5
push ebx
push eax
mov byte [ebp - 0x174], bl
call fcn.004fd8b0
add esp, 0xc
mov byte [ebp - 4], 0x3e
jmp 0x497cb5
lea eax, [edi - 0x1f4]
cmp eax, 0x63
ja 0x497cff
push ecx
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x17c], 8
push ebx
push eax
mov byte [ebp - 0x174], bl
call fcn.004fd8b0
add esp, 0xc
mov byte [ebp - 4], 0x3f
lea eax, [ebp - 0x17c]
push eax
lea ecx, [ebp - 0x35c]
call fcn.0048c481
cmp byte [ebp - 0x174], 0
mov byte [ebp - 4], 0x38
je 0x497cdf
lea ecx, [ebp - 0x16c]
call fcn.00425574
mov edi, dword [ebp - 0x364]
lea eax, [ebp - 0x354]
push eax
mov ecx, edi
mov byte [edi + 0xd8], 1
call fcn.0049b858
jmp 0x497e0e
push str.NewExpiringPurchase
lea ecx, [ebp - 0x44]
call fcn.004147d9
push str.C:UsersAdamCodeCode_Psiphonpsicashpsicash_lib_androidpsicashlib_srcmaincpppsicashlibpsicash.cpp
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x40
call fcn.004147d9
lea eax, [ebp - 0x3a4]
mov byte [ebp - 4], 0x41
push eax
lea eax, [ebp - 0x374]
mov byte [ebp - 0x374], bl
push eax
mov dword [ebp - 0x36c], ebx
mov dword [ebp - 0x368], ebx
call fcn.00492353
pop ecx
pop ecx
push ebx
push ebx
push 0x20
push 0xffffffffffffffff
lea eax, [ebp - 0x1ac]
mov byte [ebp - 4], 0x42
push eax
lea ecx, [ebp - 0x374]
call fcn.0042f285
push eax
mov ecx, 0x5ad0dc
mov byte [ebp - 4], 0x43
push ecx
lea eax, [ebp - 0x3bc]
push eax
push ecx
lea eax, [ebp - 0x3c0]
push eax
lea eax, [ebp - 0x194]
push str.request_returned_unexpected_result_code:
push eax
call fcn.0048c961
add esp, 0x1c
push 0x454
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x44
push ecx
lea ecx, [ebp - 0x2c]
push ecx
push eax
push 1
lea ecx, [ebp - 0x84]
call fcn.00488424
mov edi, dword [ebp - 0x364]
mov ecx, edi
push eax
mov byte [ebp - 4], 0x45
call fcn.00492546
lea ecx, [ebp - 0x80]
call fcn.0041fcfc
push ebx
push 1
lea ecx, [ebp - 0x194]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0x1ac]
call fcn.00416ab1
push dword [ebp - 0x374]
lea ecx, [ebp - 0x36c]
call fcn.0042f572
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00416ab1
push ebx
push 1
lea ecx, [ebp - 0x44]
call fcn.00416ab1
cmp byte [ebp - 0x35c], 0
je 0x4976e4
push ebx
lea ecx, [ebp - 0x354]
call fcn.0043bf9c
jmp 0x4976e4
call fcn.004e498d
ret 0x14